package implementation.menu {

import palf.Gallery;
import palf.visualEffects.utils.Alignment;

//TODO - this class should be internal, MenuContent should be an interface
public class MenuContent {

	private var commands : MenuContentCommands;

	public function MenuContent(gallery : Gallery) {
		this.commands = new MenuContentCommands(gallery);
	}

	public function getMainPageContent() : Array {
		return [
			{ type:"header", label:"Infographics"},
			{ type:"divider" }
		];
	}

	public function getLayoutPageContent() : Array {
		return [
			{ type:"header", label:"Layout"},
			{ type:"divider" },
			{ type:"button", label:"Default", command:commands.defaultLayout() },
			{ type:"button", label:"Grid 4x4", command:commands.gridLayout(4, 4) },
			{ type:"button", label:"Grid 5x5", command:commands.gridLayout(5, 5) },
			{ type:"button", label:"Point", command:commands.pointLayout() },
			{ type:"button", label:"Random", command:commands.randomLayout() },
			{ type:"divider" },
			{ type:"button", label:"Vertical Stack", command:commands.verticalStackLayout(4) },
			{ type:"button", label:"Coverflow", command:commands.coverflowLayout() },
			{ type:"button", label:"Carousel", command:commands.carouselLayout() },
			{ type:"divider" }
		];
	}

	public function getCircularPageContent() : Array {
		return [
			{ type:"header", label:"Circular"},
			{ type:"divider" },
			{ type:"button", label:"Single", command:commands.circleLayout(16, 1) },
			{ type:"button", label:"Double", command:commands.circleLayout(16, 2) },
			{ type:"button", label:"Triple", command:commands.circleLayout(16, 3) },
			{ type:"button", label:"Quadruple", command:commands.circleLayout(16, 4) },
			{ type:"divider" },
			{ type:"button", label:"Full-Moon", command:commands.circleLayout(16, 0) },
			{ type:"button", label:"Half-Moon", command:commands.circleLayout(30, 0) },
			{ type:"button", label:"Total Eclipse", command:commands.circleLayout(1, 0) },
			{ type:"divider" }
		];
	}

	public function getAlignmentPageContent() : Array {
		return [
			{ type:"header", label:"Alignment"},
			{ type:"divider" },
			{ type:"button", label:"Row Top", command:commands.rowLayout(Alignment.TOP, 10) },
			{ type:"button", label:"Row Center", command:commands.rowLayout(Alignment.CENTER, 10) },
			{ type:"button", label:"Row Bottom", command:commands.rowLayout(Alignment.BOTTOM, 10) },
			{ type:"divider" },
			{ type:"button", label:"Column Left", command:commands.columnLayout(Alignment.LEFT, 10) },
			{ type:"button", label:"Column Center", command:commands.columnLayout(Alignment.CENTER, 10) },
			{ type:"button", label:"Column Right", command:commands.columnLayout(Alignment.RIGHT, 10) },
			{ type:"divider" }
		];
	}

	public function getTimingPageContent() : Array {
		return [
			{ type:"header", label:"Timing"},
			{ type:"divider" },
			{ type:"button", label:"Default", command:commands.defaultTiming() },
			{ type:"button", label:"TweenLite", command:commands.tweenTiming(0.6) },
			{ type:"button", label:"Delayed", command:commands.delayedTiming(0.6, 0.2) },
			{ type:"button", label:"Step", command:commands.stepTiming(1.2, 4) },
			{ type:"button", label:"Delayed Step", command:commands.delayedStepTiming(0.6, 0.1, 3) },
			{ type:"divider" }
		];
	}

}

}
